const express = require('express')
const articleCtrl = require('../controller/article')
const auth = require('../middleware/auth')
const articleValidator = require('../validator/article')

const router = express.Router()

// 获取文章列表
router.get('/', articleCtrl.getArticles)

// 获取用户关注的作者文章列表
router.get('/feed', articleCtrl.getFeedArticles)

// 获取文章
router.get('/:id', articleValidator.getArticle, articleCtrl.getArticle)

// 创建文章
router.post('/', auth, articleValidator.createArticle, articleCtrl.createArticle)

// 更新文章
router.post('/:id', auth, articleValidator.updateArticle, articleCtrl.updateArticle)

// 点赞文章
router.post('/:id/favorite',auth, articleCtrl.favoriteArticle)

// 取消点赞文章
router.post('/:id/unfavorite', auth,articleCtrl.unfavoriteArticle)

// 判断指定文章是否被当前用户点赞
router.get('/:id/isfavorite', auth, articleCtrl.isFavoriteArticle)

// 删除文章
router.delete('/:id', auth,articleValidator.deleteArticle, articleCtrl.deleteArticle)

// 添加文章评论
router.post('/:id/comments', articleCtrl.createArticleComment)

// 获取文章评论
router.get('/:slug/comments', articleCtrl.getArticleComments)

// 删除文章评论
router.delete('/:slug/comments/:id', articleCtrl.deleteArticleComment)

// 管理员修改文章
router.post('/:id/master',articleCtrl.masterUpdateArticle)

// 管理员删除文章
router.delete('/:id/master',articleCtrl.masterDeleteArticle)
// 收藏文章
router.post('/:slug/favorite', async (req, res, next) => {
    try {
        // 处理请求
        res.send('post /articles/:slug/favorite')
    } catch (error) {
        next(error)
    }
})

// 取消收藏文章
router.delete('/:slug/favorite', async (req, res, next) => {
    try {
        // 处理请求
        res.send('delete /articles/:slug/favorite')
    } catch (error) {
        next(error)
    }
})

module.exports = router